package innerclass05;
/*
* 匿名对象 ： new 类名(参数)
* 匿名内部类格式：
*       new 父类或父接口(){
*           //重写父类或者父接口方法
*       };
*
* 匿名内部类原理：
*   1.自动生成一个内部类Demo06$1.class
*       class Demo06$1 implements Smoke{
*           public void smoking(){
*               System.out.pringln("饭后一根烟，赛过活神仙")
*           }
*       }
*   2.会创建Demo06$1的对象
*       new Demo06$1()
*
*       Smoke s = new Smoke() {   // 相当于Smoke s = new Demo06$1();
*           public void smokeing(){
*               System.out.println("饭后一根烟，赛过活神仙");
*           }
*
*       }
*
* */
public class Demo06 {
    public static void main(String[] args) {
        /*Smoke s = new Smoke(){   // 父接口指向实现类对象，Smoke s = new Demo06$1();
                                // 遵循多态
            public void smoking(){
                System.out.println("饭后一根烟，赛过活神仙");
            }
        };
        s.smoking();  // 饭后一根烟，赛过活神仙*/

        new Smoke(){     //  new Demo06$1().smoking();

            @Override
            public void smoking() {
                System.out.println("饭后一根烟，赛过活神仙");
            }
        }.smoking();   // 饭后一根烟，赛过活神仙
    }
}



